package com.wjk.kylin.mall.common.web.init;

import com.wjk.kylin.mall.common.web.util.StringEditor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author wangjkui
 * @description 全局的类型转换器
 * @date 2020/5/22
 */
@Slf4j
@RestControllerAdvice
public class GlobalInitBinderHandler {

    /**
     * 初始化数据绑定
     * 1. 将所有传递进来的String进行HTML编码，防止XSS攻击
     *
     * @param binder the binder
     */
    @InitBinder
    public void initBinder(WebDataBinder binder) {
        // String类型转换，将所有传递进来的String进行HTML编码，防止XSS攻击
        // @RequestBody 不会转换
        // 系统约定使用post请求方式且都使用 json接受数据，则不会进行转换
        binder.registerCustomEditor(String.class, new StringEditor());
    }

}
